// 这是一个封装了 POST 请求的函数，用于向服务器创建新的 streamer
export async function createStreamer(name: string, liveId: string,priority: number) {
  const url = '/api/streamers';  // 服务器接口地址
  const data = { name, liveId ,priority};  // 请求数据

  try {
    const response = await fetch(url, {
      method: 'POST',  // 请求方法
      headers: {
        'Content-Type': 'application/json',  // 设置请求内容类型为 JSON
      },
      body: JSON.stringify(data),  // 将数据转换为 JSON 字符串
    });

    if (!response.ok) {
      throw new Error(`Failed to create streamer: ${response.statusText}`);
    }

    const result = await response.json();  // 解析返回的 JSON 数据
    return result;  // 返回成功的 streamer 对象
  } catch (error) {
    console.error('Error:', error);
    throw error;  // 抛出错误，前端可以处理错误
  }
}

export async function getStreamers() {
  const url = '/api/streamers';  // 服务器接口地址

  try {
    const response = await fetch(url, {
      method: 'get',  // 请求方法
      headers: {
        'Content-Type': 'application/json',  // 设置请求内容类型为 JSON
      },
      // 将数据转换为 JSON 字符串
    });

    if (!response.ok) {
      throw new Error(`Failed to create streamer: ${response.statusText}`);
    }

    const result = await response.json();  // 解析返回的 JSON 数据
    return result;  // 返回成功的 streamer 对象
  } catch (error) {
    console.error('Error:', error);
    throw error;  // 抛出错误，前端可以处理错误
  }
}

export async function updateStreamer(id: string, name: string, liveId: string, priority: number) {
  const url = `/api/streamers/${id}`;  // 服务器接口地址，包含更新的 streamer id
  const data = { name, liveId, priority };  // 请求数据}
  try {
    const response = await fetch(url, {
      method: 'PUT',  // 使用 PUT 请求
      headers: {
        'Content-Type': 'application/json',  // 设置请求内容类型为 JSON
      },
      body: JSON.stringify(data),  // 将数据转换为 JSON 字符串
    });
    if (!response.ok) {
      throw new Error(`Failed to update streamer: ${response.statusText}`);
    }
  } catch (error) {
    console.error('Error:', error);
    throw error;  // 抛出错误，前端可以处理错误
  }
}

export async function deleteStreamer(id: string) {
  const url = `/api/streamers/${id}`;  // 服务器接口地址，包含删除的 streamer id

  try {
    const response = await fetch(url, {
      method: 'DELETE',  // 使用 DELETE 请求
      headers: {
        'Content-Type': 'application/json',  // 设置请求内容类型为 JSON
      },
    });

    if (!response.ok) {
      throw new Error(`Failed to delete streamer: ${response.statusText}`);
    }

    // 返回成功的结果
    console.log('Streamer deleted successfully!');
  } catch (error) {
    console.error('Error:', error);
    throw error;  // 抛出错误，前端可以处理错误
  }
}

export async function stopRecording(id: string) {
  const url = `/api/stop/${id}`;  // 服务器接口地址，用于停止录制
  try {
    const response = await fetch(url, {
      method: 'PUT',  // 使用 POST 请求
      headers: {
        'Content-Type': 'application/json',  // 设置请求内容类型为 JSON
      },
    });
    if (!response.ok) {
      throw new Error(`Failed to stop recording: ${response.statusText}`);
    }
  } catch (error) {
    console.error('Error:', error);
    throw error;  // 抛出错误，前端可以处理错误 
  }
}